%function Full_Welfare

clear
load resultsFMIN.mat

clearvars snPass

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;
% 1. Getting ready for graphs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;

% Cost parameters (in thousand Kwacha);
cp.alpha  = 48;           % Public benefit per tree;
cp.eta    = 1.2;          % Cost of public funds;
cp.mon    = 35;           % Monitoring cost;
cp.cb     = (1/(1+0.03)); % Cost of borrowing;

% Run parameters, tolerance is unchanged
rp.parl    = 0;
rp.m       = 200;
rp.k       = 1;
rp.lam     = 0;
rp.theseed = rp.theseed+1000;


rng(rp.theseed);
snPass.s       = rand(obs*(3*rp.k + rp.m),1);

% These two lines create a (k x m x 51) matrix, where the first floor is a
% (k x m) matrix of ones, the second a (k x m) matrix of twos, up to 51;
% Nv is just N repeated k x 51 times;
% the fourth and fifth are true false matrices for N vs. Nbar;
Ntr            = permute(N,[3,1,2]);
snPass.N3D     = Ntr(ones(rp.k,1),ones(rp.m,1),:);
snPass.Nv      = N(ones(rp.k,1),:);
snPass.Ngeq3D  = (snPass.N3D>=Nbar);
snPass.N03D    = (snPass.N3D>0);
snPass.Ngeqv   = (snPass.Nv>=Nbar);
snPass.N0v     = (snPass.Nv>0);


%%
% Must reset several values, setting to 0: F_surp (F_treat), F_moni, and
% F_shift -- This removes this context specific shifters. Further, must
% redefine Nmatrices because of new k/m dimensions

theta_hat0 = [theta_hat2(1:6),0,0,0]; % Ensures F_* parameters = 0

TG0   = zeros(obs,1);      % Alternate treatment vector, set = 0
MON0  = zeros(obs,1);      % Alternate monitoring vector, set = 0

theta_hatbase = coefftran(theta_hat0,0);
sdf1_base = theta_hatbase(5);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 2a) Varying Uncertainty on expected profits and trees
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


sd_F1_G1 = [0*sdf1_base,0.5*sdf1_base,sdf1_base,2*sdf1_base];
ssdf1    = length(sd_F1_G1);


for l=1:ssdf1
    sd_F1unc = sd_F1_G1(l);
    
    
    theta_hat_G1 = theta_hatbase;
    theta_hat_G1(5) = sd_F1unc;
    theta_run    = theta_hat_G1
    
    [PartProb,Npdf,Nobs,Prof1,Prof0,EN,OV,Prof0_C] = Full_Simulate(theta_run,DP,A,R,TG0,MON0,snPass,rp);
    
    [mW_u(l),mP_u(l),mProf0_u(l),mPProf0_u(l),mProf0_C_u(l),mPProf1_u(l),mPN_u(l),mPComp_u(l),mPOV_u(l)] =...
        zambia_postanalyze(cp,rp,A,R,Npdf,PartProb,Nobs,Prof1,Prof0,EN,OV,Prof0_C);
    
    obsDR   = ~PartProb;
    NobsDR  = Nobs;
    NobsDR(obsDR)=[];
    
    m00C_u(l) = mean((NobsDR==0))/mP_u(l);
    m50C_u(l) = mean((NobsDR==50))/mP_u(l);
    mgt35C_u(l) = mean((NobsDR>=35))/mP_u(l); % Already conditioned implicitly in line 81.
    mgt35C_uCHECK(l) = mean((NobsDR>=35));
    
end

%% Output of interest, see uncertaintyresults.xls

mP_u
mPComp_u
%mgt35C_u OLD LINE, INCORRECT
mgt35C_uCHECK
mPN_u